#ifndef __CK_ENUM_DATASOURCE_H__
#define __CK_ENUM_DATASOURCE_H__

#include "ckObject.h"
#include "zCore.h"
#include <vector>

namespace ck
{
	class DataSource;

	class ZCORE_API EnumDataSource : public ckObject
	{
	public:
		EnumDataSource();
		virtual ~EnumDataSource();
	public:
		void			Reset();
		DataSource*		Next();
		DataSource*		Find(const char* szName);

		void			Add(DataSource* pSource);
		RESULTCODE		Remove(const char* szName);

	private:
		void			Cleanup();

	private:
		std::vector<DataSource*>	m_sources;
		std::vector<DataSource*>::iterator	m_iter;
	};
}


#endif //__CK_ENUM_DATASOURCE_H__

